<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>GeorgeLib: C:/Users/morbidintel/Desktop/GeorgeLib/GeorgeLib/include/stdafx.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">GeorgeLib
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_7b6257ab3f3b0c5fc3fdc7b3b6903f08.html">GeorgeLib</a></li><li class="navelem"><a class="el" href="dir_8d9d41024d66242eff60fc724c128f39.html">include</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">stdafx.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Standard header file for GeorgeLib.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
<code>#include &lt;iostream&gt;</code><br/>
<code>#include &lt;string&gt;</code><br/>
<code>#include &lt;assert.h&gt;</code><br/>
<code>#include &lt;windows.h&gt;</code><br/>
<code>#include &quot;gl/glew.h&quot;</code><br/>
<code>#include &quot;gl/freeglut.h&quot;</code><br/>
<code>#include &lt;math.h&gt;</code><br/>
</div>
<p><a href="stdafx_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a525335710b53cb064ca56b936120431e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a525335710b53cb064ca56b936120431e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>_USE_MATH_DEFINES</b></td></tr>
<tr class="separator:a525335710b53cb064ca56b936120431e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fcbc53371e9a60b983c6b338537aa40"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9fcbc53371e9a60b983c6b338537aa40"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>RADTODEG</b>&#160;&#160;&#160;180.0f/(float)M_PI</td></tr>
<tr class="separator:a9fcbc53371e9a60b983c6b338537aa40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbfb1b8e88373781c6238d647110f5d2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abbfb1b8e88373781c6238d647110f5d2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>DEGTORAD</b>&#160;&#160;&#160;(float)M_PI/180.0f</td></tr>
<tr class="separator:abbfb1b8e88373781c6238d647110f5d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d8bf6f7d1ab0818c696208c58e4b45f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d8bf6f7d1ab0818c696208c58e4b45f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ZEROTOLERANCE</b>&#160;&#160;&#160;0.00001</td></tr>
<tr class="separator:a0d8bf6f7d1ab0818c696208c58e4b45f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab213720c0f2a91d5e0f43cdba5f5bb17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab213720c0f2a91d5e0f43cdba5f5bb17"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ZEROTOLERANCEDIGITS</b>&#160;&#160;&#160;5</td></tr>
<tr class="separator:ab213720c0f2a91d5e0f43cdba5f5bb17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a808e08638be3cba36e36759e5b150de0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a808e08638be3cba36e36759e5b150de0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>DLLEXPORT</b></td></tr>
<tr class="separator:a808e08638be3cba36e36759e5b150de0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f3ba03bc40ff1edf8fe2adf2e5666af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f3ba03bc40ff1edf8fe2adf2e5666af"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>DELETE_PTR</b>(p)&#160;&#160;&#160;do { if(p) { delete (p); (p) = 0; } } while(0)</td></tr>
<tr class="separator:a7f3ba03bc40ff1edf8fe2adf2e5666af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac6391bd8c764f361ace43d8c94bafc0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac6391bd8c764f361ace43d8c94bafc0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>DELETE_ARR</b>(p)&#160;&#160;&#160;do { if(p) { delete[] (p); (p) = 0; } } while(0)</td></tr>
<tr class="separator:aac6391bd8c764f361ace43d8c94bafc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a902daaa97a81fc3734920911aa2b8a63"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a902daaa97a81fc3734920911aa2b8a63"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ErrorMsg</b>(cond, msg)&#160;&#160;&#160;{ if(cond) { cout &lt;&lt; msg &lt;&lt; endl; return; } }</td></tr>
<tr class="separator:a902daaa97a81fc3734920911aa2b8a63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad04cfc8b09fd2f5efab299aba4c7fd35"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad04cfc8b09fd2f5efab299aba4c7fd35"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ErrorMsgReturn</b>(cond, msg, r)&#160;&#160;&#160;{ if(cond) { cout &lt;&lt; msg &lt;&lt; endl; return r; } }</td></tr>
<tr class="separator:ad04cfc8b09fd2f5efab299aba4c7fd35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c3f565833c08f88724da43208d0c728"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdafx_8h.html#a6c3f565833c08f88724da43208d0c728">PROPERTY_READONLY</a>(varType, varName, funName)</td></tr>
<tr class="memdesc:a6c3f565833c08f88724da43208d0c728"><td class="mdescLeft">&#160;</td><td class="mdescRight">PROPERTY_READONLY is used to declare a protected variable.  <a href="#a6c3f565833c08f88724da43208d0c728">More...</a><br/></td></tr>
<tr class="separator:a6c3f565833c08f88724da43208d0c728"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ada333cc259bb2f134e62552101299d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>PROPERTY_READONLY_PASS_BY_REF</b>(varType, varName, funName)</td></tr>
<tr class="separator:a6ada333cc259bb2f134e62552101299d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67c83f513d3a0d472ee622b4da24327e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdafx_8h.html#a67c83f513d3a0d472ee622b4da24327e">PROPERTY</a>(varType, varName, funName)</td></tr>
<tr class="memdesc:a67c83f513d3a0d472ee622b4da24327e"><td class="mdescLeft">&#160;</td><td class="mdescRight">PROPERTY is used to declare a protected variable.  <a href="#a67c83f513d3a0d472ee622b4da24327e">More...</a><br/></td></tr>
<tr class="separator:a67c83f513d3a0d472ee622b4da24327e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a620bea4896654636b60ea7104f4860be"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>PROPERTY_PASS_BY_REF</b>(varType, varName, funName)</td></tr>
<tr class="separator:a620bea4896654636b60ea7104f4860be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36b2b53c03ff8405a3ef3d82e04c3202"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdafx_8h.html#a36b2b53c03ff8405a3ef3d82e04c3202">SYNTHESIZE_READONLY</a>(varType, varName, funName)</td></tr>
<tr class="memdesc:a36b2b53c03ff8405a3ef3d82e04c3202"><td class="mdescLeft">&#160;</td><td class="mdescRight">SYNTHESIZE_READONLY is used to declare a protected variable.  <a href="#a36b2b53c03ff8405a3ef3d82e04c3202">More...</a><br/></td></tr>
<tr class="separator:a36b2b53c03ff8405a3ef3d82e04c3202"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1272f794ec0ca74dd3656616fec30109"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>SYNTHESIZE_READONLY_PASS_BY_REF</b>(varType, varName, funName)</td></tr>
<tr class="separator:a1272f794ec0ca74dd3656616fec30109"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc72083c8e756c99d15a97e791ba1f2d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdafx_8h.html#afc72083c8e756c99d15a97e791ba1f2d">SYNTHESIZE</a>(varType, varName, funName)</td></tr>
<tr class="memdesc:afc72083c8e756c99d15a97e791ba1f2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">SYNTHESIZE is used to declare a protected variable.  <a href="#afc72083c8e756c99d15a97e791ba1f2d">More...</a><br/></td></tr>
<tr class="separator:afc72083c8e756c99d15a97e791ba1f2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a384bdcfd582d9c0f4f2d293fbac2978e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>SYNTHESIZE_PASS_BY_REF</b>(varType, varName, funName)</td></tr>
<tr class="separator:a384bdcfd582d9c0f4f2d293fbac2978e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ab1e5dc9089ea4961000f7a27b52d2b86"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1e5dc9089ea4961000f7a27b52d2b86"></a>
typedef unsigned __int8&#160;</td><td class="memItemRight" valign="bottom"><b>uchar</b></td></tr>
<tr class="separator:ab1e5dc9089ea4961000f7a27b52d2b86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03ebc5e2cbf57a1693fce3d104deb17b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a03ebc5e2cbf57a1693fce3d104deb17b"></a>
typedef unsigned __int16&#160;</td><td class="memItemRight" valign="bottom"><b>ushort</b></td></tr>
<tr class="separator:a03ebc5e2cbf57a1693fce3d104deb17b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7273f0bf9486e45ebb67c07730256cba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7273f0bf9486e45ebb67c07730256cba"></a>
typedef unsigned __int32&#160;</td><td class="memItemRight" valign="bottom"><b>uint</b></td></tr>
<tr class="separator:a7273f0bf9486e45ebb67c07730256cba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8e4cb6516d914862f5b9f4c3761c6d4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8e4cb6516d914862f5b9f4c3761c6d4"></a>
typedef unsigned __int64&#160;</td><td class="memItemRight" valign="bottom"><b>ulonglong</b></td></tr>
<tr class="separator:ac8e4cb6516d914862f5b9f4c3761c6d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf9c5254059a136ad58e87ccf629bf99"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf9c5254059a136ad58e87ccf629bf99"></a>
typedef const __int8&#160;</td><td class="memItemRight" valign="bottom"><b>cchar</b></td></tr>
<tr class="separator:aaf9c5254059a136ad58e87ccf629bf99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3e623209ac7c95fbb915e44ddfd8a62"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa3e623209ac7c95fbb915e44ddfd8a62"></a>
typedef const __int16&#160;</td><td class="memItemRight" valign="bottom"><b>cshort</b></td></tr>
<tr class="separator:aa3e623209ac7c95fbb915e44ddfd8a62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3213d5cc384f0245df9f3c2c78d6c29e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3213d5cc384f0245df9f3c2c78d6c29e"></a>
typedef const __int32&#160;</td><td class="memItemRight" valign="bottom"><b>cint</b></td></tr>
<tr class="separator:a3213d5cc384f0245df9f3c2c78d6c29e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bbde3959e46ac73f5a5f53e4966ada8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0bbde3959e46ac73f5a5f53e4966ada8"></a>
typedef const __int64&#160;</td><td class="memItemRight" valign="bottom"><b>clonglong</b></td></tr>
<tr class="separator:a0bbde3959e46ac73f5a5f53e4966ada8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2a5b16602cfdac94cf518d98619a560"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab2a5b16602cfdac94cf518d98619a560"></a>
typedef const unsigned __int8&#160;</td><td class="memItemRight" valign="bottom"><b>cuchar</b></td></tr>
<tr class="separator:ab2a5b16602cfdac94cf518d98619a560"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03827fdb879532940cab712488c39c0b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a03827fdb879532940cab712488c39c0b"></a>
typedef const unsigned __int16&#160;</td><td class="memItemRight" valign="bottom"><b>cushort</b></td></tr>
<tr class="separator:a03827fdb879532940cab712488c39c0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae45a8f6a3527c9e89627057333e9ce66"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae45a8f6a3527c9e89627057333e9ce66"></a>
typedef const unsigned __int32&#160;</td><td class="memItemRight" valign="bottom"><b>cuint</b></td></tr>
<tr class="separator:ae45a8f6a3527c9e89627057333e9ce66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a7830a6abda671c0ea3f328c50187e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a7830a6abda671c0ea3f328c50187e9"></a>
typedef const unsigned __int64&#160;</td><td class="memItemRight" valign="bottom"><b>culonglong</b></td></tr>
<tr class="separator:a4a7830a6abda671c0ea3f328c50187e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37b05a1b1041e2d61af0d72ced9ee231"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a37b05a1b1041e2d61af0d72ced9ee231"></a>
typedef const float&#160;</td><td class="memItemRight" valign="bottom"><b>cfloat</b></td></tr>
<tr class="separator:a37b05a1b1041e2d61af0d72ced9ee231"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad682bce99b2a8052b4a08da5e31ac588"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad682bce99b2a8052b4a08da5e31ac588"></a>
typedef const double&#160;</td><td class="memItemRight" valign="bottom"><b>cdouble</b></td></tr>
<tr class="separator:ad682bce99b2a8052b4a08da5e31ac588"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a4ccab09df091c89ab591efb3a6e0659b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ccab09df091c89ab591efb3a6e0659b"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>detectzero</b> (float num)</td></tr>
<tr class="separator:a4ccab09df091c89ab591efb3a6e0659b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Standard header file for GeorgeLib. </p>
<p>Contains includes, type definitions, preprocessor defines and macros. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a67c83f513d3a0d472ee622b4da24327e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PROPERTY</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varType, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varName, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">funName&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: varType varName;\</div>
<div class="line">    public: <span class="keyword">virtual</span> varType <span class="keyword">get</span>##funName(<span class="keywordtype">void</span>);\</div>
<div class="line">    public: <span class="keyword">virtual</span> <span class="keywordtype">void</span> set##funName(varType var);</div>
</div><!-- fragment -->
<p>PROPERTY is used to declare a protected variable. </p>
<p>We can use getter to read the variable, and use the setter to change the variable. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">varType</td><td>: the type of variable. </td></tr>
    <tr><td class="paramname">varName</td><td>: variable name. </td></tr>
    <tr><td class="paramname">funName</td><td>: "get + funName" is the name of the getter. "set + funName" is the name of the setter. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>: The getter and setter are public virtual functions, you should rewrite them first. The variables and methods declared after PROPERTY are all public. If you need protected or private, please declare. </dd></dl>

</div>
</div>
<a class="anchor" id="a620bea4896654636b60ea7104f4860be"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PROPERTY_PASS_BY_REF</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varType, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varName, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">funName&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: varType varName;\</div>
<div class="line">    public: <span class="keyword">virtual</span> <span class="keyword">const</span> varType&amp; <span class="keyword">get</span>##funName(<span class="keywordtype">void</span>);\</div>
<div class="line">    public: <span class="keyword">virtual</span> <span class="keywordtype">void</span> set##funName(<span class="keyword">const</span> varType&amp; var);</div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a6c3f565833c08f88724da43208d0c728"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PROPERTY_READONLY</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varType, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varName, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">funName&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: varType varName;\</div>
<div class="line">    public: <span class="keyword">virtual</span> varType <span class="keyword">get</span>##funName(<span class="keywordtype">void</span>);</div>
</div><!-- fragment -->
<p>PROPERTY_READONLY is used to declare a protected variable. </p>
<p>We can use getter to read the variable. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">varType</td><td>: the type of variable. </td></tr>
    <tr><td class="paramname">varName</td><td>: variable name. </td></tr>
    <tr><td class="paramname">funName</td><td>: "get + funName" is the name of the getter. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>: The getter is a public virtual function, you should rewrite it first. The variables and methods declared after PROPERTY_READONLY are all public. If you need protected or private, please declare. </dd></dl>

</div>
</div>
<a class="anchor" id="a6ada333cc259bb2f134e62552101299d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PROPERTY_READONLY_PASS_BY_REF</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varType, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varName, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">funName&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: varType varName;\</div>
<div class="line">    public: <span class="keyword">virtual</span> <span class="keyword">const</span> varType&amp; <span class="keyword">get</span>##funName(<span class="keywordtype">void</span>);</div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="afc72083c8e756c99d15a97e791ba1f2d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SYNTHESIZE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varType, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varName, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">funName&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: varType varName;\</div>
<div class="line">    public: <span class="keyword">virtual</span> varType <span class="keyword">get</span>##funName(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> varName; }\</div>
<div class="line">    public: <span class="keyword">virtual</span> <span class="keywordtype">void</span> set##funName(varType var){ varName = var; }</div>
</div><!-- fragment -->
<p>SYNTHESIZE is used to declare a protected variable. </p>
<p>We can use getter to read the variable, and use the setter to change the variable. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">varType</td><td>: the type of variable. </td></tr>
    <tr><td class="paramname">varName</td><td>: variable name. </td></tr>
    <tr><td class="paramname">funName</td><td>: "get + funName" is the name of the getter. "set + funName" is the name of the setter. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>: The getter and setter are public inline functions. The variables and methods declared after SYNTHESIZE are all public. If you need protected or private, please declare. </dd></dl>

</div>
</div>
<a class="anchor" id="a384bdcfd582d9c0f4f2d293fbac2978e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SYNTHESIZE_PASS_BY_REF</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varType, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varName, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">funName&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: varType varName;\</div>
<div class="line">    public: <span class="keyword">virtual</span> <span class="keyword">const</span> varType&amp; <span class="keyword">get</span>##funName(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> varName; }\</div>
<div class="line">    public: <span class="keyword">virtual</span> <span class="keywordtype">void</span> set##funName(<span class="keyword">const</span> varType&amp; var){ varName = var; }</div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a36b2b53c03ff8405a3ef3d82e04c3202"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SYNTHESIZE_READONLY</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varType, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varName, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">funName&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: varType varName;\</div>
<div class="line">    public: <span class="keyword">virtual</span> varType <span class="keyword">get</span>##funName(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> varName; }</div>
</div><!-- fragment -->
<p>SYNTHESIZE_READONLY is used to declare a protected variable. </p>
<p>We can use getter to read the variable. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">varType</td><td>: the type of variable. </td></tr>
    <tr><td class="paramname">varName</td><td>: variable name. </td></tr>
    <tr><td class="paramname">funName</td><td>: "get + funName" is the name of the getter. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>: The getter is a public inline function. The variables and methods declared after SYNTHESIZE_READONLY are all public. If you need protected or private, please declare. </dd></dl>

</div>
</div>
<a class="anchor" id="a1272f794ec0ca74dd3656616fec30109"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SYNTHESIZE_READONLY_PASS_BY_REF</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varType, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">varName, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">funName&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">protected</span>: varType varName;\</div>
<div class="line">    public: <span class="keyword">virtual</span> <span class="keyword">const</span> varType&amp; <span class="keyword">get</span>##funName(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> varName; }</div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Jan 21 2015 13:43:17 for GeorgeLib by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>
